/*
 * StandardMazeBuilder.h
 *
 *  Created on: Jan 9, 2013
 *      Author: quanpv
 */

#ifndef STANDARDMAZEBUILDER_H_
#define STANDARDMAZEBUILDER_H_

#include "MazeBuilder.h"

typedef int Direction;

class StandardMazeBuilder: public MazeBuilder {
public:
	StandardMazeBuilder();
	virtual ~StandardMazeBuilder();

	virtual void BuildMaze();
	virtual void BuildRoom(int);
	virtual void BuildDoor(int, int);

	virtual boost::shared_ptr<Maze> GetMaze();

private:
	Direction CommonWall(boost::shared_ptr<Room>, boost::shared_ptr<Room>);
	boost::shared_ptr<Maze> _currentMaze;
};

#endif /* STANDARDMAZEBUILDER_H_ */
